home *** CD-ROM | disk | FTP | other *** search
- /*
- File: PCCardAdapterPlugin.h
-
- Contains: PC Card Socket Service Plug-In Programming Interface
-
- Version: System 7.5 and System 8
-
- DRI: Dave Falkenburg
-
- Copyright: © 1984-1996 by Apple Computer, Inc.
- All rights reserved.
-
- Warning: *** APPLE INTERNAL USE ONLY ***
- This file may contain unreleased API's
-
- BuildInfo: Built by: Dave Falkenburg
- With Interfacer: 2.0d11 (PowerPC native)
- From: PCCardAdapterPlugin.i
- Revision: 13
- Dated: 8/6/96
- Last change by: DRF
- Last comment: Renamed service type to be consistent. Also deleted dispatch
-
- Bugs: Report bugs to Radar component “System Interfaces”, “Latest”
- List the version information (from above) in the Problem Description.
-
- */
- #ifndef __PCCARDADAPTERPLUGIN__
- #define __PCCARDADAPTERPLUGIN__
-
- #ifndef __TYPES__
- #include <Types.h>
- #endif
- #ifndef __NAMEREGISTRY__
- #include <NameRegistry.h>
- #endif
- #ifndef __INTERRUPTS__
- #include <Interrupts.h>
- #endif
- #ifndef __PCCARD__
- #include <PCCard.h>
- #endif
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #if PRAGMA_IMPORT_SUPPORTED
- #pragma import on
- #endif
-
- #if PRAGMA_ALIGN_SUPPORTED
- #pragma options align=power
- /* the following contents can only be used by compilers that support PowerPC struct alignment */
-
- /* Copyright: © 1996 SystemSoft Corporation, all rights reserved. */
- #if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
- /*
- ------------------------------------------------------------------------------------
- Types
- ------------------------------------------------------------------------------------
- */
- /* Interrupt Status Change bits*/
-
- enum {
- kSCBatteryDead = 0x01, /* Battery Dead Status Change*/
- kSCBatteryLow = 0x02, /* Battery Warning Status Change*/
- kSCReady = 0x04, /* Ready Status Change*/
- kSCCardDetect = 0x08, /* Card Detect Status Change*/
- kSCCardEjected = 0x10, /* Card Ejected*/
- kSCStatusChange = 0x20, /* PC Card Status Change Signal Asserted*/
- kSCRingIndicate = 0x40 /* PC Card Ring Indicate Signal Asserted*/
- };
-
- /* IRQ bits */
-
- enum {
- kIRQLevelMask = 0x1F,
- kIRQInvalid = 0x20,
- kIRQHigh = 0x40,
- kIRQEnable = 0x80
- };
-
- /* bits for adapter characteristics flags*/
-
- enum {
- SS_ADPT_FLG_IND = 0x01, /* indicators for write-protect, card lock,*/
- /* battery status, busy status, and XIP*/
- /* are shared for all sockets*/
- SS_ADPT_FLG_PWR = 0x02, /* if set indicates that the sockets*/
- /* share the same power control*/
- SS_ADPT_FLG_DBW = 0x04, /* all windows on the adapter must use*/
- /* the same Data Bus Width*/
- SS_ADPT_FLG_CARDBUS = 0x08, /* all sockets are CardBus PC Card capable*/
- SS_ADPT_FLG_DMA = 0x10, /* the adapter has DMA capability*/
- /* bits for adapter power characteristics*/
- SS_ADPT_FLG_V33 = 0x20, /* adapter supports 3.3 volt power to socket*/
- SS_ADPT_FLG_V50 = 0x40, /* adapter supports 5.0 volt power to socket*/
- SS_ADPT_FLG_V12 = 0x80 /* adapter supports 12.0 volt power to socket*/
- };
-
- /*
- ------------------------------------------------------------------------------------
- Calls exported by the Family
- ------------------------------------------------------------------------------------
- */
- extern OSStatus CSReportStatusChange(const RegEntryRef *adapterRef, PCCardSocket whichSocket, PCCardSCEvents statusChange, PCCardSocketStatus socketStatus);
-
- /*
- ------------------------------------------------------------------------------------
- Plugin Dispatch Table
- ------------------------------------------------------------------------------------
- */
- typedef OSStatus (*SSValidateHardwareProc)(const RegEntryRef *deviceID);
- typedef OSStatus (*SSInitializeProc)(const RegEntryRef *deviceID, Boolean replacingOldDriver);
- typedef OSStatus (*SSSuspendProc)(const RegEntryRef *deviceID);
- typedef OSStatus (*SSResumeProc)(const RegEntryRef *deviceID);
- typedef OSStatus (*SSFinalizeProc)(const RegEntryRef *deviceID, Boolean beingReplaced);
- typedef OSStatus (*SSInquireAdapterProc)(ItemCount *numberOfSockets, ItemCount *numberOfWindows, ItemCount *numberOfBridgeWindow, PCCardAdapterCapabilities *capabilities);
- typedef OSStatus (*SSInquireSocketProc)(PCCardSocket socket, ItemCount *numberOfWindows, PCCardSocketStatus *supportedSocketStatus, PCCardSCEvents *supportedStatusChange);
- typedef OSStatus (*SSGetSocketProc)(PCCardSocket socket, PCCardVoltage *Vcc, PCCardVoltage *Vpp, PCCardVoltage *Vs, PCCardInterfaceType *socketIF, PCCardCustomInterfaceID *customIFID, PCCardSocketStatus *socketStatus, PCCardSCEvents *SCEventsMask, PCCardIRQ *IRQ, PCCardDMA *DMA);
- typedef OSStatus (*SSSetSocketProc)(PCCardSocket socket, PCCardVoltage Vcc, PCCardVoltage Vpp, PCCardInterfaceType socketIF, PCCardCustomInterfaceID customIFID, PCCardSocketStatus statusReset, PCCardSCEvents SCEventsMask, PCCardIRQ IRQ, PCCardDMA DMA);
- typedef OSStatus (*SSResetSocketProc)(PCCardSocket socket);
- typedef OSStatus (*SSGetStatusProc)(PCCardSocket socket, PCCardSocketStatus *currentStatus, PCCardSocketStatus *changedStatus);
- typedef OSStatus (*SSInquireWindowProc)(PCCardSocket *socket, PCCardWindow window, PCCardWindowState *windowState, PCCardWindowSize *windowSize, PCCardWindowAlign *windowAlign);
- typedef OSStatus (*SSGetWindowProc)(PCCardSocket *socket, PCCardWindow window, PCCardWindowState *windowState, PhysicalAddress *startAddress, PCCardWindowSize *windowSize, PCCardWindowOffset *windowOffset, PCCardAccessSpeed *memSpeed);
- typedef OSStatus (*SSSetWindowProc)(PCCardSocket socket, PCCardWindow window, PCCardWindowState windowState, PhysicalAddress *startAddress, PCCardWindowSize windowSize, PCCardWindowOffset windowOffset, PCCardAccessSpeed memSpeed);
- typedef OSStatus (*SSGetWindowOffsetProc)(PCCardSocket *socket, PCCardWindow window, PCCardWindowState *windowState, PCCardWindowOffset *windowOffset);
- typedef OSStatus (*SSSetWindowOffsetProc)(PCCardSocket socket, PCCardWindow window, PCCardWindowState windowState, PCCardWindowOffset windowOffset);
- typedef OSStatus (*SSInquireBridgeWindowProc)(PCCardSocket *socket, PCCardWindow window, PCCardWindowState *windowState, PCCardWindowSize *windowSize, PCCardWindowAlign *windowAlign);
- typedef OSStatus (*SSGetBridgeWindowProc)(PCCardSocket *socket, PCCardWindow window, PCCardWindowState *windowState, PhysicalAddress *startAddress, PCCardWindowSize *windowSize);
- typedef OSStatus (*SSSetBridgeWindowProc)(PCCardSocket socket, PCCardWindow window, PCCardWindowState windowState, PhysicalAddress *startAddress, PCCardWindowSize windowSize);
- typedef OSStatus (*SSReadConfigurationSpaceProc)(const RegEntryRef *deviceID, PCCardSocket socket, UInt32 device, UInt32 offset, void *data, UInt32 size);
- typedef OSStatus (*SSWriteConfigurationSpaceProc)(const RegEntryRef *deviceID, PCCardSocket socket, UInt32 device, UInt32 offset, void *data, UInt32 size);
- typedef OSStatus (*SSGetInterruptSetMemberProc)(PCCardSocket socket, InterruptSetMember *interruptSetMember);
- typedef OSStatus (*SSEjectCardProc)(PCCardSocket socket);
-
- enum {
- kServiceTypePCCardAdapter = 'sock',
- kPCCardAdapterPluginVersion = 0x00000001,
- kPCCardAdapterPluginCurrentVersion = kPCCardAdapterPluginVersion
- };
-
- struct PCCardAdapterPluginHeader {
- UInt32 version;
- UInt32 reserved1;
- UInt32 reserved2;
- UInt32 reserved3;
- };
- typedef struct PCCardAdapterPluginHeader PCCardAdapterPluginHeader;
-
- struct PCCardAdapterPluginDispatchTable {
- PCCardAdapterPluginHeader header;
-
- SSValidateHardwareProc validateHardware;
-
- SSInitializeProc initialize;
- SSSuspendProc suspend;
- SSResumeProc resume;
- SSFinalizeProc finalize;
-
- SSInquireAdapterProc inquireAdapter;
- SSInquireSocketProc inquireSocket;
- SSGetSocketProc getSocket;
- SSSetSocketProc setSocket;
- SSResetSocketProc resetSocket;
- SSGetStatusProc getStatus;
- SSInquireWindowProc inquireWindow;
- SSGetWindowProc getWindow;
- SSSetWindowProc setWindow;
- SSGetWindowOffsetProc getWindowOffset;
- SSSetWindowOffsetProc setWindowOffset;
- SSInquireBridgeWindowProc inquireBridgeWindow;
- SSGetBridgeWindowProc getBridgeWindow;
- SSSetBridgeWindowProc setBridgeWindow;
- #ifdef CARDBUS_SUPPORT
- SSReadConfigurationSpaceProc readConfigurationSpace;
- SSWriteConfigurationSpaceProc writeConfigurationSpace;
- #endif // CARDBUS_SUPPORT
- SSGetInterruptSetMemberProc getInterruptSetMember;
- SSEjectCardProc ejectCard;
- };
- typedef struct PCCardAdapterPluginDispatchTable PCCardAdapterPluginDispatchTable;
-
- typedef PCCardAdapterPluginDispatchTable *PCCardAdapterPluginDispatchTablePtr;
- #endif
-
- #pragma options align=reset
- #endif /* PRAGMA_ALIGN_SUPPORTED */
-
- #if PRAGMA_IMPORT_SUPPORTED
- #pragma import off
- #endif
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif /* __PCCARDADAPTERPLUGIN__ */
-
-